package com.bocloud.cmp.interfaces.resource;

import java.util.List;
import java.util.Map;

import com.bocloud.cmp.entity.resource.CloudVendor;
import com.bocloud.cmp.model.CloudVendorBean;
import com.bocloud.common.model.BsmResult;
import com.bocloud.common.model.Param;

/**
 * 
 * 云供应商接口
 * 
 * @author DZG
 * @since V1.0 2016年9月1日
 */
public interface CloudVendorService {

	/**
	 * 创建云供应商
	 * 
	 * @param user
	 * @return
	 */
	public BsmResult create(CloudVendor cloudVendor);

	/**
	 * 更新云供应商
	 * 
	 * @param user
	 * @return
	 */
	public BsmResult modify(CloudVendorBean bean, Long userId);

	/**
	 * 删除云供应商
	 * 
	 * @param id
	 * @param userId
	 * @return
	 */
	public BsmResult remove(Long id, Long userId);

	/**
	 * 冻结云供应商
	 * 
	 * @param id
	 * @param userId
	 * @return
	 */
	public BsmResult lock(Long id, Long userId);

	/**
	 * 解冻云供应商
	 * 
	 * @param id
	 * @param userId
	 * @return
	 */
	public BsmResult active(Long id, Long userId);

	/**
	 * 查看云供应商详情
	 * 
	 * @param id
	 * @return
	 */
	public BsmResult detail(Long id);

	/**
	 * 根据云供应商姓名查询云供应商
	 * 
	 * @param name
	 * @return
	 */
	public BsmResult checkName(String name);

	/**
	 * 查询云供应商列表
	 * 
	 * @param page
	 * @param rows
	 * @param parseArray
	 * @param parseObject
	 * @param simple
	 * @return
	 */
	public BsmResult list(Integer page, Integer rows, List<Param> params, Map<String, String> sorter, Boolean simple);

	/**
	 * 根据供应商类型查询列表
	 * 
	 * @param type
	 * @return
	 */
	public List<CloudVendor> list(String type);

	/**
	 * 查询所有云供应商
	 * 
	 * @return
	 */
	public List<CloudVendor> listAll();

}
